package com.tqjc.business.interactivewithscan.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @program: C20005_Xianggang_new
 * @description: 设备参数信息
 * @author: Patienyon
 * @create: 2023-11-01 18:41
 **/
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@NoArgsConstructor
public class UfcDeviceInfo extends Model<UfcDeviceInfo> {

    private static final long serialVersionUID = 1L;

    public UfcDeviceInfo(Integer length, Integer width, Double slope) {
        this.length = length;
        this.slope = slope;
        this.width = width;
    }

    public UfcDeviceInfo(Integer length, Integer width) {
        this.length = length;
        this.width = width;
    }

    /**
     * 设备主键信息同ufc_device字段和数据一致
     */
    @TableId
    private Long deviceOid;

    /**
     * 设备长度（X轴）单位mm
     */
    private Integer length;

    /**
     * 设备宽带（Y轴）单位mm
     */
    private Integer width;

    /**
     * 设备宽度（Z轴）单位mm
     */
    private Integer high;

    /**
     * 设备在坐标系中停靠边界点所在的X轴最大或最小位置（XYZ只能一个有值）
     */
    private Integer coordForX;

    /**
     * 设备在坐标系中停靠边界点所在的Y轴最大或最小位置（XYZ只能一个有值）
     */
    private Integer coordForY;

    /**
     * 设备在坐标系中停靠边界点所在的Z轴最大或最小位置（XYZ只能一个有值）
     */
    private Integer coordForZ;

    /**
     * 斜率，在计算抓料放料时考虑倾斜
     */
    private Double slope;

    /**
     * coord执行正方向还是负方向，正则表示为最大，负则表示为最小
     */
    private Integer pointType;


    @Override
    protected Serializable pkVal() {
        return this.deviceOid;
    }

}
